package com.example.xianzhi.dao;

import com.example.xianzhi.entity.TbAdSmall;
import com.example.xianzhi.entity.TbGoods;

import java.util.Date;
import java.util.List;

public interface GoodsDao {

    /**
     * 添加商品
     * @param goods
     * @return
     */
    int insertGoods(TbGoods goods);

    /**
     * 通过商品id查询商品
     * @param goods_id
     * @return
     */
    TbGoods selectIdGoods(int goods_id);


    /**
     * 通过商品id查询子图
     * @param goods_id
     * @return
     */
    List<TbAdSmall> selectGoodsPic(int goods_id);


    /**
     * 通过发布人id查询发布订单
     * @param
     * @return
     */
    List<TbGoods> selectReleaseOrder(int release_id);

    /**
     *通过交易状态和发布人id查询订单信息
     * @param goods_state
     * @return
     */
    List<TbGoods> selectOrder(String goods_state,int release_id);

    /**
     * 查询所有商品
     * @return
     */
    List<TbGoods> selectGoods();

    /**
     * 模糊查询商品
     * @param goods_name 商品名称
     * @param type_id     分类id
     * @return
     */
    List<TbGoods> selectGoodsinfo(String goods_name,int type_id);

    /**
     * 删除商品
     * @param goods_id  商品id
     * @return
     */
    int deleteGoods(int goods_id);

    /**
     * 通过分类id查询商品信息
     * @param type_id
     * @return
     */
    List<TbGoods> selectTypeGoods(int type_id);


    /**
     * 查询订单
     * @return
     */
    List<TbGoods> selectIndent();

    /**
     * 删除该id的商品
     * @param goods_id 商品id
     */
    void delectGoods(int goods_id);

    /**
     * 模糊查询订单列表
     * @param publisher 收件人
     * @param buy_time  订单时间
     * @param addressee 发布人
     * @param goods_id  订单ID
     * @return
     */
    List<TbGoods> selectIndentClassification(String publisher,String buy_time,String addressee,int goods_id);

    /**
     * 通过商品id找商品信息以及发布人信息
     * @param goods_id  商品id
     * @return
     */
    List<TbGoods> selectGoodsByGoodsId(int goods_id);

    /**
     * 修改商品订单信息
     * @param goods_id 商品id
     */

    /**
     * 修改商品订单信息
     * @param buyer_id 购买人id
     * @param buy_time 购买时间
     * @param goods_add_id 地址id
     * @param goods_id 商品id
     */
    void updateGoodsid(int buyer_id, Date buy_time, int goods_add_id,int goods_id);

    /**
     * 通过商品名称和分类id查询商品id
     * @param goods_name
     * @param type_id
     * @return
     */
    List<TbGoods> selectGoodsId(String goods_name,int type_id);

    /**
     * 前端的商品名称模糊查询
     * @param goods_name
     * @return
     */
    List<TbGoods> selectGoodsname(String goods_name);



    /**
     * 通过分类id找商品信息(xcc)
     * @param type_id
     * @return
     */

    List<TbGoods> selecttypeidgoods(int  type_id);


    /**
     * 查询所有商品信息(xcc id=0)
     * @return
     */

    List<TbGoods> selectusergoods();

    /**
     * 查询用户收藏的商品数据(xcc)
     * @param user_id
     * @return
     */
    List<TbGoods> selegooodsrela(int user_id);




    /**
     * 查询用户游览的商品数据(xcc)
     * @param user_id
     * @return
     */
    List<TbGoods> selegooodsrhist(int user_id);

}
